#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Módulos 
import sys, gtk, pygame, utils, objetos
from pygame.locals import *

# Constantes

linea1 = list(unicode('Para: Beto y Trueno',"UTF-8"))
linea2 = list(unicode('De: ADE (Agencia de Detectives Ecológicos)',"UTF-8"))
linea3 = list(unicode('Asunto: Ayuda para comprender un mensaje anónimo',"UTF-8")) 
linea4 = list('Caso:')
linea5 = list('A la Agencia ha llegado la siguiente nota:')
linea6 = list('SI LO EMITIMOS, LO RESPIRAMOS.')
linea7 = list('SI LO VOLCAMOS, LO TOMAMOS.')
linea8 = list('SI LO TIRAMOS, LO COMEMOS.')
linea9 = list(unicode('Urgente, Beto, necesitamos que nos expliquen a qué se',"UTF-8"))
linea10 = list(unicode('refiere este peligroso mensaje anónimo.',"UTF-8")) 
# Clases
# ---------------------------------------------------------------------

class Lamparita(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.sonido = pygame.mixer.Sound("sounds/eureka.ogg")
        self.image = utils.load_image("images/lamparita_chica.png", True)
        self.rect = self.image.get_rect()
        self.rect.centerx = 650*utils.RES
        self.rect.centery = 350*utils.RES
        self.sonido.set_volume(0.1)   
        self.flag_sonido = True
        
        

class Mail(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = utils.load_image("images/c1_mail.png", True)
        self.rect = self.image.get_rect()
        self.rect.centerx = 400*utils.RES
        self.rect.centery = 250*utils.RES
      
class Titulo_mail():
	
	def __init__(self,x,y):
		self.texto, self.texto_rect = utils.texto_titulo_email("", x, y)
		self.valor = ""
	def cambiar_texto(self,texto_input):
		self.valor = texto_input
		self.texto, self.texto_rect = utils.texto_titulo_email(texto_input, self.texto_rect.centerx, self.texto_rect.centery)
	def anexar_texto(self,texto_agregado):
		self.valor = self.valor+texto_agregado
		self.texto, self.texto_rect = utils.texto_titulo_email(self.valor, self.texto_rect.centerx, self.texto_rect.centery)

class Texto_mail():
	
	def __init__(self,x,y):
		self.texto, self.texto_rect = utils.texto_cuerpo_email("", x, y)
		self.valor = ""
	def cambiar_texto(self,texto_input):
		self.valor = texto_input
		self.texto, self.texto_rect = utils.texto_cuerpo_email(texto_input, self.texto_rect.centerx, self.texto_rect.centery)
	def anexar_texto(self,texto_agregado):
		self.valor = self.valor+texto_agregado
		self.texto, self.texto_rect = utils.texto_cuerpo_email(self.valor, self.texto_rect.centerx, self.texto_rect.centery)

		

# ---------------------------------------------------------------------
def dibujar(screen,cursor_picture,clock):
    salir = 0
    background_image = utils.load_image('images/fondo1_2.png')
    i= 0
    j= 0
    
    numero_linea = 1
    mail = Mail()
    t_linea1 = Titulo_mail(210*utils.RES,120*utils.RES)
    t_linea2 = Titulo_mail(350*utils.RES,150*utils.RES)
    t_linea3 = Titulo_mail(400*utils.RES,180*utils.RES)
    t_linea4 = Texto_mail(132*utils.RES,260*utils.RES)
    t_linea5 = Texto_mail(300*utils.RES,290*utils.RES)
    t_linea6 = Texto_mail(293*utils.RES,320*utils.RES)
    t_linea7 = Texto_mail(285*utils.RES,350*utils.RES)
    t_linea8 = Texto_mail(274*utils.RES,380*utils.RES)
    t_linea9 = Texto_mail(377*utils.RES,430*utils.RES)
    t_linea10 = Texto_mail(305*utils.RES,460*utils.RES)
    boton = objetos.BotonAdelante()
    boton_atras = objetos.BotonAtras()
    lamparita = Lamparita()
    dialog = utils.load_image('images/c1_lamparita.png', True)
    show_dialog = False
    clase1, clase1_rect = utils.texto_clase("Clase 1", 750*utils.RES, 15*utils.RES)
    titulo, titulo_rect = utils.texto_titulo("RECONOCIENDO(NOS) EN EL MEDIO AMBIENTE", 310*utils.RES, 50*utils.RES)
    sonido_tecla = pygame.mixer.Sound("sounds/type.wav")       
    sonido_tecla.set_volume(0.1)       
    while salir == 0:
		
		# Pump GTK messages.
		while gtk.events_pending():
		   gtk.main_iteration()
		   
		for eventos in pygame.event.get():
			if eventos.type == QUIT:
				sys.exit(0)
			elif eventos.type == pygame.VIDEORESIZE:
			   pygame.display.set_mode(eventos.size, pygame.RESIZABLE)	    
			elif eventos.type == MOUSEBUTTONDOWN:
				if boton.rect.collidepoint(pygame.mouse.get_pos()):
					salir = 2
					boton.sonido.play()	
				elif boton_atras.rect.collidepoint(pygame.mouse.get_pos()):
					salir = -1
					boton_atras.sonido.play()		
				elif lamparita.rect.collidepoint(pygame.mouse.get_pos()):
					#print ("sonido play")
					lamparita.sonido.play()	
					if show_dialog == False:
						show_dialog = True
					else:
						show_dialog = False	
		
		screen.blit(background_image, (0, 0))
		screen.blit(mail.image, mail.rect)
		screen.blit(clase1, clase1_rect)
		screen.blit(titulo, titulo_rect)
		screen.blit(t_linea1.texto, t_linea1.texto_rect)
		screen.blit(t_linea2.texto, t_linea2.texto_rect)
		screen.blit(t_linea3.texto, t_linea3.texto_rect)
		screen.blit(t_linea4.texto, t_linea4.texto_rect)
		screen.blit(t_linea5.texto, t_linea5.texto_rect)
		screen.blit(t_linea6.texto, t_linea6.texto_rect)
		screen.blit(t_linea7.texto, t_linea7.texto_rect)
		screen.blit(t_linea8.texto, t_linea8.texto_rect)
		screen.blit(t_linea9.texto, t_linea9.texto_rect)
		screen.blit(t_linea10.texto, t_linea10.texto_rect)
		screen.blit(boton.image, boton.rect)
		screen.blit(boton_atras.image, boton_atras.rect)
		if numero_linea == 11:
			screen.blit(lamparita.image, lamparita.rect)
			if lamparita.flag_sonido:
				lamparita.sonido.play()	
				lamparita.flag_sonido = False
		else:
			if j % 4 == 0:
				sonido_tecla.play()
		if show_dialog == True:
			screen.blit(dialog, (int(500*utils.RES), int(250*utils.RES)))
		screen.blit(cursor_picture, pygame.mouse.get_pos())
		pygame.display.flip()
		# Try to stay at 30 FPS
		clock.tick(30)

		# Realiza la animacion del texto				
		j += 1
		if j % 1 == 0:
			if numero_linea == 1:
				if i < len(linea1):
					t_linea1.anexar_texto(linea1[i])
					i += 1
				else:
					numero_linea = 2
					i = 0					
			elif numero_linea == 2:
				if i < len(linea2): 
					t_linea2.anexar_texto(linea2[i])
					i += 1	
				else:
					numero_linea = 3
					i = 0
			elif numero_linea == 3:
				if i < len(linea3): 
					t_linea3.anexar_texto(linea3[i])
					i += 1	
				else:
					numero_linea = 4
					i = 0	
			elif numero_linea == 4:
				if i < len(linea4): 
					t_linea4.anexar_texto(linea4[i])
					i += 1	
				else:
					numero_linea = 5
					i = 0	
			elif numero_linea == 5:
				if i < len(linea5): 
					t_linea5.anexar_texto(linea5[i])
					i += 1	
				else:
					numero_linea = 6
					i = 0				
			elif numero_linea == 6:
				if i < len(linea6): 
					t_linea6.anexar_texto(linea6[i])
					i += 1	
				else:
					numero_linea = 7
					i = 0		
			elif numero_linea == 7:
				if i < len(linea7): 
					t_linea7.anexar_texto(linea7[i])
					i += 1	
				else:
					numero_linea = 8
					i = 0
			elif numero_linea == 8:
				if i < len(linea8): 
					t_linea8.anexar_texto(linea8[i])
					i += 1	
				else:
					numero_linea = 9
					i = 0	
			elif numero_linea == 9:
				if i < len(linea9): 
					t_linea9.anexar_texto(linea9[i])
					i += 1	
				else:
					numero_linea = 10
					i = 0			
			elif numero_linea == 10:
				if i < len(linea10): 
					t_linea10.anexar_texto(linea10[i])
					i += 1	
				else:
					numero_linea = 11		
				
    return salir

# This function is called when the game is run directly from the command line:
# ./TestGame.py 
def main():
	
	pygame.init()
	screen = pygame.display.set_mode((int(800*utils.RES), int(520*utils.RES)), pygame.RESIZABLE) #pygame.display.get_surface() #

	# Fake a Sugar cursor for the pyGame canvas area
	pygame.mouse.set_cursor((8,8),(0,0),(0,0,0,0,0,0,0,0),(0,0,0,0,0,0,0,0))
	cursor_picture = pygame.image.load('images/standardcursor.png')
	cursor_picture.convert_alpha() 
	clock = pygame.time.Clock()
	dibujar(screen,cursor_picture,clock)

if __name__ == '__main__':
   main()
